﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HokjesSluiten
{
    /**
     * Als de streep horizontaal of verticaal is, is het een zet
     * anders is het een gevuld hokje, hokjes hebben een diagonale streep 
     * van links boven naar rechts onder
     */
    public class Streep : IEquatable<Streep>
    {
        private Point aPriv = new Point();
        public Point a
        {
            get { return aPriv; }
            set {
                if (!b.IsEmpty)
                    checkIfHokje(aPriv, b);
                aPriv = value;
            }   
        }

        private Point bPriv = new Point();
        public Point b
        {
            get { return bPriv; }
            set
            {
                if (a != null)
                    checkIfHokje(a, bPriv);
                bPriv = value;
            }   
        }

        public Boolean isHokje { get; set; }

        public Bot moveMadeBy { get; set; }

        public Streep() { }

        public Streep(Point aPoint, Point bPoint)
        {
            a = aPoint;
            b = bPoint;
        }

        public Boolean Equals(Streep other)
        {
            if ((other.a.Equals(a) && other.b.Equals(b))
                || (other.a.Equals(b) && other.b.Equals(a)))
                return true;

            return false;
        }

        protected void checkIfHokje(Point a, Point b)
        {
            if (a.X == b.X || a.Y == b.Y)
                isHokje = false;

            isHokje = true;
        }
    }
}
